import logging
from redis import StrictRedis


# 自定义项目配置类
class Config(object):

    # 开启DEBUG模式
    DEBUG = True

    # mysql数据库配置信息
    # mysql数据库链接配置
    SQLALCHEMY_DATABASE_URI = 'mysql://root:mysql@127.0.0.1:3306/information21'
    # 开启数据库跟踪操作 TODO
    SQLALCHEMY_TRACK_MODIFICATION = True

    # redis数据库配置信息
    REDIS_HOST = '127.0.0.1'
    REDIS_PORT = 6379
    REDIS_NUM = 1

    # 将session存储的数据从内存转移到redis中存储的配置信息
    # session设置加密sign
    SECRET_KEY = '12323SDFSDF'
    # 指明数据库类型为redis
    SESSION_TYPE = 'redis'
    # 创建真实存储数据库的对象进行赋值
    SESSION_REDIS = StrictRedis(REDIS_HOST, REDIS_PORT, REDIS_NUM)
    # session_id是否需要进行加密处理
    SESSION_USE_SIGNER = True
    # 设置数据不需要永久保存，而是根据我们设置的过期时长进行调整
    # SESSION_PERMANENT = False
    # 设置过期时长，默认数据31days过期
    PERMANENT_SESSION_LIFETIME = 86400 # 一天


class DevelopmentConfig(Config):
    '''开发者模式的项目配置信息'''
    DEBUG = True
    # 设置日志级别，开发模式一般设置成DEBUG
    LOG_LEVEL = logging.DEBUG


class ProductConfig(Config):
    '''上线模式的项目配置信息'''
    DEBUG = False
    # 设置日志级别，开发模式一般设置成DEBUG
    LOG_LEVEL = logging.WARNING

# 提供一个结口给外界使用
config_dict={
    'development': DevelopmentConfig,
    'production': ProductConfig
}
